package com.nlgc365.designpattern.Chapter04_Pattern.Behavior.P07_Visitor.Iteration03;

/**
 * 作用: 代表爬虫爬取到的资源文件; 复用.
 */
public abstract class ResourceFile {
    // 属性: 路径
    private String path;

    // 构造函数
    public ResourceFile(String path) {
        this.path = path;
    }

    public String getPath() {
        return path;
    }

    // 抽象方法: 抽取数据到txt文件
    // public abstract void extract2Txt(); // 在迭代1中不在数据类中下沉业务功能 , 所有删除

    // 新需求: 添加压缩, 获取元数据, 建立索引... 等新业务需求, 那么就会对所有的子类进行代码修改, 不符合开闭原则.
    //public abstract void compress();

    /*
    public abstract void extract(Extractor extractor);
    //面对需求增加, 添加以下需求
    public abstract void compress(Compressor compressor);
     */
    public abstract void visit(Visitor visitor);

}
